public class VarParameter {
    public static void main(String[] args) {
        HspMethod hm =new HspMethod();
        hm.sum(3,4,5);
        // 可变参数的实参可以为数组(本质就是数组)
        int[] arr={1,2,3};
        hm.sum(arr);



    }
}

class HspMethod{
//    public int sum(int n1,int n2){
//        return n1 + n2;
//    }
//
//    public int sum(int n1,int n2,int n3){
//        return n1 + n2 +n3;
//    }
//
//    public int sum(int n1,int n2,int n3,int n4){
//        return n1 + n2 +n3 +n4;
//    }
    // 上面三个方法名称相同，作用相同，但参数个数不同 -> 使用可变参数优化
    // 1. int... 表示接受的是可变参数，类型是int,即可接收多个int(0-N)
    // 2. 使用可变参数时，可以当作数组来使用，即 nums 可以当作数组
    public int sum(int... nums){
        System.out.println("接收的参数个数=" + nums.length);
        int res = 0;
        for (int i=0;i<nums.length;i++){
            res += nums[i];
        }
        System.out.println(res);
        return res;
    }

    // 可变参数可以和普通类型的参数一起放在形参列表，但必须保证可变参数在最后
    // 且一个形参列表中只能出现一个可变参数
    public int sum2(String str,double... nums){
        return 0;
    }
}
